Skip to content

feat: add Compressor, MFAdvisor, and refactored AcqOptimizer modules#113

Merged
Elubrazione merged 54 commits intoPKU-DAIR:masterfrom
Elubrazione:master
Mar 20, 2026
Merged

feat: add Compressor, MFAdvisor, and refactored AcqOptimizer modules#113
Elubrazione merged 54 commits intoPKU-DAIR:masterfrom
Elubrazione:master

Conversation

@Elubrazione
Copy link
Copy Markdown
Member

No description provided.

Elubrazione and others added 30 commits December 2, 2025 14:30
Introduce scheduler infrastructure for resource allocation and bracket management.
Support Fixed, BOHB, MFES, and Flatten scheduling strategies.
Add scheduler support with factory pattern and fidelity-aware evaluation.
Enable BOHB/MFES successive halving strategies in generic optimizer.
…trategy interface

- Implement sampling strategies:
  * StandardSamplingStrategy for single-space sampling
  * MixedRangeSamplingStrategy for adaptive compressed/original space sampling
…work (base/expert/shap)

Co-authored-by: Lingching <Elubrazione@users.noreply.github.com>
- Refactor range compression into modular step classes:
  * BaseRangeCompressionStep: Base class for range compression steps
  * BoundaryRangeStep: Simple boundary-based range compression with mixed sampling support
  * SHAPBoundaryRangeStep: SHAP-weighted boundary range compression
  * ExpertRangeStep: Expert-specified range compression

Co-authored-by: Lingching <Elubrazione@users.noreply.github.com>
- Add source_similarities support to dimension and range compression steps:
  * SHAPDimensionStep: Weight SHAP importances by task similarity
  * SHAPBoundaryRangeStep: Use similarity-weighted SHAP values, focus on beneficial samples (SHAP < 0)
  * TunefulDimensionStep: Pass source_similarities to parent class
- Refactor data extraction utilities
- Improve SHAP range compression:
  * Only use beneficial samples (SHAP < 0) for range computation
  * Combine SHAP weights with similarity weights for better parameter selection
- Add core compression framework:
  * CompressionStep base class for extensible compression operations
  * CompressionPipeline for orchestrating multi-step compression workflows
  * OptimizerProgress for tracking optimization state and adaptive updates
- Support adaptive compression updates based on optimizer progress
- Enable point projection/unprojection through compression pipeline
- KDEBoundaryRangeStep: KDE-based range compression with similarity weighting
- QuantizationRangeStep: Quantization-based compression with adaptive updates
- Add SpearmanDimensionStep for correlation-based dimension selection
- Add KPCAProjectionStep for kernel PCA-based projection
- Add bidirectional caching to REMBO/HesBO projection steps
…ons between spaces

- filling strategy initialization
- unproject method for quantization
- Refactor Compressor/__init__.py to use new pipeline architecture
- Add new Compressor base class in Compressor/core/compressor.py
- Enhance CompressionPipeline info
  * Add detailed step-by-step compression statistics
  * Display dimension ratio and effective compression ratio separately
  * Show comprehensive pipeline summary with original/sample/surrogate dimensions
- Improve projection step visualization support
Add visualization functions for compression pipeline analysis including:
- Compression details and range compression visualization
- Dimension reduction tracking across steps
- Parameter importance visualization and heatmaps
- Pipeline flow diagrams
- Compression metadata export
- Parameter filtering -> DimensionSelectionStep
- Value clipping -> RangeCompressionStep
- Parameter filling -> all steps
- Add clipping.py utilities

Each step now fully owns its transformation logic.
Fixes out-of-bounds crash when ranges compress.
…mation

- All compressor types now use convert_config_to_surrogate_space()
- REMBO/HesBO support pseudoinverse approximation for cache misses
Implement progressive compression mode for PeriodicDimensionStep to enable
gradual dimension reduction instead of always
restarting from the original space
- Add UpdateStrategy framework with periodic/stagnation/improvement strategies
- Add ImportanceCalculator with SHAP and correlation-based implementations
- Refactor SHAPDimensionStep to use SHAPImportanceCalculator
- Replace SpearmanDimensionStep with generic CorrelationDimensionStep
- Remove redundant validation checks from calculators
- Update exports to reflect new architecture
- Change source_similarities from List[Tuple] to Dict[int, float] across all steps
- Add source_similarities param to all compress() methods for complete data flow
- Add AdaptiveDimensionStep
  * Integrates with UpdateStrategy framework for dynamic dimension adjustment
  * Handles dimension increase/decrease based on optimization progress

- Enhance UpdateStrategy framework
  * Add compute_new_topk() method to all strategies
  * Implement dimension adjustment logic for each strategy type

- Improve CompressionPipeline
  * Detect dimension increase scenarios and use original_space when needed
  * Simplify project_point/unproject_point to handle dict directly
  * Better handling of progressive vs re-compression scenarios
- Add compression info saving to JSON files with history tracking
- Implement get_step_info() across all compression steps
- Add source_similarities parameter support throughout pipeline
- Track unprojected_space in CompressionPipeline
- Add get_unprojected_space() to Compressor
- Fix BO advisor to use correct target space for unprojection
Elubrazione and others added 24 commits December 22, 2025 12:54
- add a 4-panel compression summary dashboard plus a smart dispatcher
- add tracking for visualization
- unproject to sample space when no transformative step
- return  instead of
- add new interface  to unproject batch configs
- parameter exclusion (allowing experts to exclude certain parameters)
- add expert_params parameter to all dimension step constructors (Adaptive, SHAP, Correlation, Expert)
- refactor _select_parameters() to return all sorted parameters instead of just topk
  - base class now handles topk selection and expert_params merging
  - this allows expert params to be prioritized while method selection supplements
- simplify ExpertDimensionStep to delegate expert param handling to base class
@Elubrazione Elubrazione merged commit 30263ea into PKU-DAIR:master Mar 20, 2026
4 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants